var start = {};//开始时间参数
var end = {};//结束时间参数
var firstAvenue = false;//判断是不是第一道工序
var fMacIdData;//设备列表
var _id;//产品工艺路线ID
var piesId;//派工单ID
var fIcmoId="";
var fIsOutStock = 0;//判断是否是第一道工序
/*
 * @Description: 预加载
 * @param : 
 */
$(function (){
	resizeIframeHight();
	initProductionTasksTable();
	initNewProcessTable();
	pullDown();
	
	jeDate('#dispatchingfStartTime',{
		onClose : false,
		format : 'YYYY-MM-DD',
        donefun: function(obj){
            end.minDate = obj.val; //开始日选好后，重置结束日的最小日期
            jeDate("#dispatchingfEndTime",LinkageEndDate());
        }
	});
	jeDate('#dispatchingfEndTime',LinkageEndDate());

	//点击Tab刷新表格
	$(".PIES",parent.document).click(function(){
		$('#taskTable').bootstrapTable('refresh');
		$('#newProcessTable').bootstrapTable('refresh');
//		setTimeout(function(){
//			if(_index != -1){
//				$('#taskTable').bootstrapTable('check',_index);
//			}
//		},500);
	});
});
/*
 * @Description: 设置完工时间
 * @param :
 */
function LinkageEndDate() {
    return {
    	onClose : false,
        format: 'YYYY-MM-DD',
        minDate: function (that) {
            //that 指向实例对象
//            var nowMinDate = jeDate.valText('#dispatchingfStartTime') == "" && jeDate.valText(that.valCell) == "";
//            return nowMinDate ? jeDate.nowDate({DD:0}) : end.minDate ;
        	var startTime = $('#dispatchingfStartTime').val();
        	return startTime == "" ? jeDate.nowDate({DD:0}) : startTime;
        }, //设定最小日期为当前日期
        donefun: function(obj){
            start.maxDate = obj.val; //将结束日的初始值设定为开始日的最大日期
        }
    };    
}

/*
 * @Description: 操作事件
 * @param :
 */
window.operateEvents= {
	'click .dispatching' : function(e, value, row, index) {//派工
		//var data = $("#taskTable").bootstrapTable('getSelections')[0];//获取选中任务单里的数据
//		console.log(scdata)
		data = scdata;
//		console.log(data)
		var whether,selection = false;
		var time = dateFormatter(data.fSchedulingCommitDate) + ' 至 ' + dateFormatter(data.fSchedulingFinishDate);//计划时间格式化
		if(row.fIsOut == 1058){//是否外协格式化
			whether = "是";
		}else if(row.fIsOut == 1059){
			whether = "否";
		}
		$("#dispatchingfIsOperInStock").prop('checked',selection);

		loadData(data,'#dispatchingForm');
		loadData(row,'#dispatchingForm');
		$("#dispatchingfOperName").val(row.fOperName);
		$("#dispatchingfDepid").val(row.fDepId);
		$("#dispatchingfPlanDate").val(time);
		$("#dispatchingfIsOut").val(whether);
		$("#dispatchingfStartTime").val(jeDate.timeStampDate(Math.round(new Date()/1000),'YYYY-MM-DD'));
		if(index == 0){//如果是表格第一条数据,fIsOutStock=1
			fIsOutStock = 1;
//			firstAvenue = true;
		}else{
			fIsOutStock = 0;
		}
		$('#dispatchingModal').modal('show');
	},
	'click .modifyDevice' : function(e, value, row, index) {//修改设备
		_id = row.id;
		initModifyMachine();
		initMachine(2,row.fMacGroupId);
		initPiesTable();
		$('#modifyModal').modal('show');
	},
	'click .setout':function(e, value, row, index) {//委外转出
		fIcmoId=row.fIcmoId;
		$("#fOperNumber").val(row.fOperSN);
		$("#fOperName").val(row.fOperName);
		$("#fItemId").val(row.fItemID);
		$("#wlName").val(row.fName);
		$("#num").val(row.noDispatchQty);
		$("#fQty").val(row.subcOutQty);
		$("#fSupplierName").val('');
		$("#fSupplierName").val('');
		$("#fSupplierName").val('');
		$("#fSupplierName").val('');
		$('#setout').modal('show');
	}
};
$('#fSupplierName').typeahead({
    ajax: {
        url: pathUrl("supplier/getSupplierList.action"),
        timeout: 300,                   // 延时
        method: 'post',
        triggerLength: 1,               // 输入几个字符之后，开始请求
        loadingClass: null,             // 加载数据时, 元素使用的样式类
        preDispatch: null,              // 发出请求之前，调用的预处理方法
        preProcess: null                // Ajax 请求完成之后，调用的后处理方法
    },
    display: "fName",     // 默认的对象属性名称为 name 属性
    val: "fItemID",           // 默认的标识属性名称为 id 属性
    items: '8',			// 最多显示项目数量
    itemSelected: function (item, val, text) {      // 当选中一个项目的时候，回调函数
    	$("#fSupplierID").val(val);
    }
});
$("#empCardNoOut").keypress(function(event){
	if(event.keyCode == "13"){
		searchName(this.id);
	}
});
function searchName(id){
	var card = $("#empCardNoOut").val();
	if(card != ""){
		$.ajax({
			type : "GET",
			url : pathUrl("emp/findByCondition.action"),
			dataType : "JSON",
			data : {'fNumber':card},
			success : function(data) {
//			console.log(data);
				var name = "";
//				console.log(data)
				if(data.total == 1){
					name = data.rows[0].fName;
				}else{
					swal_Tips('该员工ID不存在，请重新输入！');
				}
				$("#turnOutP").val(name);
			},
			error : function(request) {
				swal_Tips_Error();
			}
		});
	}
}
jeDate('#fFetchDate',{
	onClose : false,
	format : 'YYYY-MM-DD',
	donefun : function(obj) {
		// end.minDate = obj.val; // 开始日选好后，重置结束日的最小日期
	}
});
$("#confirm_out").click(function(){
	var num=$("#num").val();
	var fQty=$("#fQty").val();
	var fSupplierID=$("#fSupplierID").val();
	var fSupplierName=$("#fSupplierName").val();
	var fOperSN=$("#fOperNumber").val();
	var price=$("#price").val();
	var fWorker=$("#empCardNoOut").val();
	var fFetchDate=$("#fFetchDate").val();
	var turnOutP=$("#turnOutP").val();
	if(fQty == 0){
		swal_Tips("没有可转出数量！");
		return false;
	}
	if(isNaN(fQty)){
		swal_Tips("请输入委外数量！");
		return false;
	}
	if(fQty == 0){
		swal_Tips("委外数量不能为0！");
		return false;
	}
	if((num - fQty) < 0){
		swal_Tips("委外数量不能大于可转出数量！");
		return false;
	}
	if(fSupplierID == ""){
		swal_Tips("请选择加工单位！");
		return false;
	}
	if(fFetchDate == ""){
		swal_Tips("交货日期不能为空！");
		return false;
	}
	if(fWorker == ""){
		swal_Tips("转出人ID不能为空！");
		return false;
	}
	if(turnOutP == ""){
		swal_Tips("转出人姓名不能为空（输入转出收人ID，按回车才会出现转出人姓名！）");
		return false;
	}
	showSwal(
		'转出',
		'您确定转出吗？',
		'是的，确定转出',
		function(result){
			if(result.value){
				// console.log(_cardNo,_fOperNumber,_fQty,_fSupplierID,$("#price").val(),new
				// Date(_fFetchDate.replace(/-/g, "/")));
				showLoading();//显示正在提交中
				$.ajax({
					url : pathUrl("subcout/subcOutOper.action"),
					type : "POST",
					dataType : "JSON",
					data : {
						'fIcmoId':fIcmoId,
						'fQty':fQty,
						'fSupplierID':fSupplierID,
						'fSupplierName':fSupplierName,
						'fOperSN':fOperSN,
						'price':price,
						'fFetchDate':new Date(fFetchDate.replace(/-/g,  "/")),
						'fWorker':fWorker
					},
					success : function(data) {
						// console.log(data);
						if (data.code == "0000") {
							$('#newProcessTable').bootstrapTable('refresh');
							$("#setout").modal('hide');
							swal_Tips_Short(data.message);
						} else if (data.code == "9999") {
							swal_Tips(data.message);
						}
					},
					error : function(request) {
						swal_Tips('系统出错!');
						swal_Tips_Error();
					},
					complete: function () {
					}
				});
			}
		})
});
/*
 * @Description: 派工模态框显示后操作：派工数量获得焦点，加载设备列表
 * @param :
 */
$('#dispatchingModal').on('shown.bs.modal', function () {
	initMachine(1);
	$("#dispatchingfTargetQty").focus();
});
/*
 * @Description: 派工模态框隐藏后操作：清空数据
 * @param :
 */
$('#dispatchingModal').on('hidden.bs.modal', function () {
	$(".clean_c").val('');//清空派工表里的数据
	$("#dispatchingfMacId").selectpicker('refresh');
});

/*
 * @Description: 派工模态框确定按钮点击事件
 * @param :
 */
$("#confirm").click(function(){
	var fIsOperInStock = 0;
	var noDispatchQty = parseFloat($("#dispatchingnoDispatchQty").val());//获取剩余可派工数
	var fTargetQty = parseFloat($("#dispatchingfTargetQty").val());//获取派工数
	var fMacId = $("#dispatchingfMacId").val();//获取设备ID
	var fStartTime = new Date($('#dispatchingfStartTime').val().replace(/-/g,   "/"));//开工时间
	var fEndTime = new Date($('#dispatchingfEndTime').val().replace(/-/g,   "/"));//完工时间
	var fMachine = $('#dispatchingfMacId option:selected').text();
	if($("#dispatchingfWorker").val() == ""){
		swal_Tips('请输入员工ID！');
		return false;
	}
	if($("#dispatchingfWorkerName").val() == ""){
		swal_Tips('请输入正确的员工ID！');
		return false;
	}
	if(isNaN(fTargetQty)){
		swal_Tips('请输入正确的派工数！');
		return false;
	}
	if(fTargetQty == 0){
		swal_Tips('派工数不能为0！');
		return false;
	}
	if(fTargetQty > noDispatchQty){
		swal_Tips('派工数不能大于剩余可派工数！');
		return false;
	}
	if(fStartTime == "Invalid Date"){
		swal_Tips('请选择开工时间！');
		return false;
	}
	if(fEndTime == "Invalid Date"){
		swal_Tips('请选择完工时间！');
		return false;
	}
	if(fMacId == ""){
		swal_Tips('请选择设备！');
		return false;
	}
	if($('#dispatchingfIsOperInStock').is(':checked')) {
		fIsOperInStock = 1;
	}
//	console.log($("#dispatchingForm :text,#dispatchingForm select,#dispatchingForm :hidden").not($('.noPass')).serializeObject() + '&' + $.param({'fIsOutStock': fIsOutStock})
//			 + '&' + $.param({'fIsOperInStock': fIsOperInStock}) +  '&' + $.param({'fStartTime': fStartTime}) +  '&' + $.param({'fEndTime': fEndTime}))
	showSwal(
		'派工',
		'您确认派工吗？',
		'是的，确定派工',
		function(result){//isConfirm 点击确定按钮，参数true/false
			if(result.value){
//				$("#confirm").html("正在提交中。。。");
//				$("#confirm").attr("disabled",true);
				showLoading();//显示正在提交中
				$.ajax({
					url : pathUrl("dispatch/insert.action"),
					type : "POST",
					dataType : "JSON",
					data : $("#dispatchingForm :text,#dispatchingForm select,#dispatchingForm :hidden").not($('.noPass')).serializeObject() + '&' + $.param({'fIsOutStock': fIsOutStock})
							+ '&' + $.param({'fIsOperInStock': fIsOperInStock}) +  '&' + $.param({'fStartTime': fStartTime}) +  '&' + $.param({'fEndTime': fEndTime}) +  '&' + $.param({'fMachine': fMachine}),
					success : function(data) {
//						console.log(data)
						if (data.code == "0000") {
							$("#dispatchingModal").modal('hide');
							$('#newProcessTable').bootstrapTable('refresh');
							swal_Tips_Short(data.message);
//							if(firstAvenue){
//							}
							window.open(pathUrl("DS?id="+ data.dataset+"&type=0"));
						} else if (data.code == "9999") {
							swal_Tips(data.message);
						}
					},
					error : function(request) {
						swal_Tips_Error();
					},
					complete : function () {
//						$("#confirm").html("确定");
//						$("#confirm").attr("disabled",false);
					}
				});
			}
		}
	);
});

/*
 * @Description: 打印模态框打流转卡按钮点击事件
 * @param :
 */
$("#TCbtn").click(function(){
	url=pathUrl("TC?id="+ _cardNo1 +"&type=one");
	window.open(url);
})
/*
 * @Description: 初始化设备下拉列表
 * @param : type 类型：1为派工设备下拉，2为修改设备里的设备下拉
 * @param : id 设备组id
 */
function initMachine(type,id){
	var fGroupId = parseInt($("#dispatchingfMacGroupId").val());
	if(type == 2){
		fGroupId = id;
	}
	$.ajax({
		url : pathUrl("machine/findByCondition.action"),
		type : 'POST',
		dataType : "JSON",
		async : false,
		data : {
			//"fRunStatus": 0,//0未生产，1正在生产
			//"fRepairStatus" : 0,//维修状态
			"row" : 100000,
			"fGroupId" : fGroupId
		},
		success : function(data) {
//			console.log(data)
			var data = data.rows;
			if(type == 1){
				var option = "";
				$("#dispatchingfMacId").empty();
				option = '<option value="">' + "请选择" + '</option>';
				for (x in data) {
					option += '<option value="' + data[x].id + '">' + data[x].fName + '</option>';
				}
				$("#dispatchingfMacId").html(option);
				$('#dispatchingfMacId').selectpicker('refresh');
			}else{
				fMacIdData = data;
			}
		},
		error : function(request) {
			swal_Tips_Error();
		}
	});
}

/*
 * @Description: 员工ID输入框输入事件：输入员工ID后，自动带出员工姓名
 * @param : 
 */
$("#dispatchingfWorker").keyup(function(event){
	$.ajax({
		url : pathUrl("emp/findByCondition.action"),
		type : 'GET',
		dataType : "JSON",
		data : {
			"row" : 100000,
			"fNumber" : $("#dispatchingfWorker").val()
		},
		success : function(data) {
			var str = "";
			if(data.rows != null && data.rows.length == 1){//查询到数据并且只有一条数据，才写入员工姓名
				str = data.rows[0].fName;
				$("#dispatchingfTargetQty").focus();
			}
			$("#dispatchingfWorkerName").val(str);
		},
		error : function(request) {
			swal_Tips_Error();
		}
	});
});

/*
 * @Description: 初始化开工记录表 
 * @param :  
 */
function initPiesTable() {
	$('#piesTable').bootstrapTable('destroy').bootstrapTable({
		url : pathUrl("dispatch/findByCondition.action"),//请求后台的URL
		//height : $(window).height() - 200,//行高
		method : "POST",//请求方式
		cache : false,//是否使用缓存，默认为true
		pagination : true,//是否显示分页
		pageNumber : 1,//初始化加载第几页
		pageSize : 10,//每页的记录行数
		sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
		pageList : [ 10, 25, 50, 100 ],// 分页方式：client客户端分页，server服务端分页
		queryParams : function(params) {//传递参数
			var data= {}, fWorker;
			data.offset = params.offset;
			data.row = params.limit;
			data.fCode = $("#modifyfCode").val();
			data.fMacId = $("#modifyDdevice").val();
			data.fCardId = _id;
			//data.sortOrder = params.order;//排序
			//data.sortName = params.sort;//排序
			return data;
		},
		dataType : 'JSON',//数据类型
		uniqueId : "id",//每一行的唯一标识，一般为主键列
		columns : [/* {
			checkbox : true
		}, */{
			field : "fCode",
			align : 'center',
			valign: 'middle',
			title : '派工单号',
			edit: false
		}, {
			field : "fMacId",
			align : 'center',
			valign: 'middle',
			title : '设备',
			edit : {
				type : 'select',// 下拉框
			    data : fMacIdData,
			    valueField : 'id',
			    textField : 'fName',
			    onSelect : function(val,rec){
			    	$.ajax({
			    		url : pathUrl("dispatch/updateMachine.action"),
			    		type : 'POST',
			    		dataType : "JSON",
			    		async : false,
			    		data : {
			    			"fMacId" : val,
			    			"fMachine" : rec.fName,
			    			"id" : piesId
			    		},
			    		success : function(data) {
			    			if (data.code == "0000") {
			    				$('#piesTable').bootstrapTable('refresh');
			    				initModifyMachine();
							} else if (data.code == "9999") {
								swal_Tips(data.message);
							}
			    		},
			    		error : function(request) {
			    			swal_Tips_Error();
			    		}
			    	});
			    }
			}
		}, {
			field : "fTargetQty1",
			align : 'center',
			valign: 'middle',
			title : '派工数量',
			formatter : function(value,row,index){
				return parseFloat(row.fTargetQty) - parseFloat(row.fQty);
			},
			edit: false
		},  {
			field : "fTime",
			align : 'center',
			valign: 'middle',
			title : '时间',
			formatter : function(value,row,index){
				var str = "";
				if(row.fStartTime != null){
					str = dateFormatter(row.fStartTime)+ ' 至 ' +dateFormatter(row.fEndTime);
				}
				return str;
			},
			edit: false
		}],
		onClickRow : function(row, $element) {//行单击
//			console.log(row)
			piesId = row.id;
		}
	});
}
/*
 * @Description: 初始化派工设备查询
 * @param :
 */
function initModifyMachine(){
	$.ajax({
		url : pathUrl("dispatch/getMac.action"),
		type : 'POST',
		dataType : "JSON",
		async : false,
		data : {
			"fCardId" : _id
		},
		success : function(data) {
			var option = "";
			$("#modifyDdevice").empty();
			option = '<option value="">' + "请选择" + '</option>';
			for (x in data) {
				option += '<option value="' + data[x].fMacId + '">' + data[x].fMachine + '</option>';
			}
			$("#modifyDdevice").html(option);
			$('#modifyDdevice').selectpicker('refresh');
		},
		error : function(request) {
			swal_Tips_Error();
		}
	});
}
/*
 * @Description: 派工设备模态框查询按钮点击事件
 * @param :
 */
$("#query_modify").click(function(){
	initPiesTable();
});
/*
 * @Description: 派工设备模态框重置按钮点击事件
 * @param :
 */
$("#resetting_modify").click(function(){
	$("#modifyfCode,#modifyDdevice").val("");
	$('#modifyDdevice').selectpicker('refresh');
	initPiesTable();
});